Meena
Towards a Human-like Open-Domain Chatbot
논문을 바탕으로 작성하였습니다.
논문을 바탕으로 작성하였습니다.Evaluation
이 논문에서 open-domain chatbot의 측정을 위해 새로운 metric
SSA를 만들었어요.
chatbot의 응답이 말이 되는지(sensibleness) 확인하고 그 대답이 "i don't know."와 같은 말은 되지만 구체적인 의미가 있는지 없는지(specificity)를 판단하죠.
위와 같은 기준으로 데이터셋을 판단하고, 이를 활용해 평가를 진행하는 static evaluation과,
작업자가 어느 주제든 상관하지 않고 대화하며 평가를 진행하는 interactive evaluation을 진행하였습니다.여기서 놀라운 점을 발견하였는데,
SSA와 perplexity가 선형에 가까운 높은 상관관계를 가지고 있다는 것을 보았어요.
즉 perplexity를 낮게 만들도록 학습한다면, 높은 SSA 점수를 받을 수 있다는 것을 의미하죠.
위 평가에서 사람의 경우 86%, Meena의 경우 72%로 다른 chatbot들과는 큰 차이를 보여주었어요.
Training Data
학습 데이터를 구축하기 위해 소셜 미디어(Reddit)에서 대화를 트리 형태로 구성하였습니다.
여기서 context, response pair를 만들었는데, 데이터의 품질을 위해 아래에 해당하는 대화들은 과감하게 제거하였습니다.
또한 데이터의 품질을 높이기 위해 아래와 같은 종류의 메세지는 삭제하였어요.
- subword의 수가 2보다 적거나 128보다 큰 경우
- 알파벳의 비율이 70%를 넘기지 않는 경우
- URL을 포함하는 경우
- 댓글 작성자의 이름에 'bot'이 들어가있는 경우
- 메세지가 100회 이상 반복된 경우
- 부모 메세지와 높은 n-gram overlap을 보이는 경우
- 메세지가 공격적이고 안전하지 않은 경우 (텍스트 분류기를 통해 분류)
Model Architecture
기존의 open-domain chatbot들은 사람같은 특징을 보여주지만 복잡한 구조로 구성되어 있습니다.
Meena는 end-to-end로 설계하여 하나의 encoder block과 13개의 decoder block으로 이루어진
ET(Evolved Transformer)로 구성하였습다.
가장 큰 모델의 경우 10.2 perplexity를 달성하였고, vanilla transformer를 이용한 경우 10.7 perplexity를 달성하였어요.Decoding
기존 대화 모델의 문제점인 단조롭고 반복적은 응답을 생성하는 것을 막기 위한 전략을 세웠어요.
논문에서 충분히 낮은 perplexity 모델은 beam search보다 sampling 방법이 더 다양하고 흥미로운 답변을 생성하는 것을 발견하였습니다.
또한 perplexity가 충분히 낮다면 "I like pizza, but I don't like it."와 같은 모순되는 응답이 나타나는 경우가 드물다는 것도 볼 수 있었구요.
또
interactive evaluation에서 발생하는 cross-turn repetition 현상을 막기위해 두 차례의 메세지가 공통된 긴 sub-sequence로 이루어져 있다면
이를 후보에서 제외하는 방식의 규칙을 만들었습니다.Conclusion
논문에서 설명하는 학습 데이터셋을 만드는 방법을 우리가 만드려는 한국어 챗봇에 적용할 수 있을 것 같아요.
물론 디테일한 방법은 약간 조정할 필요가 있겠지만요.
또 decoding 방법과 규칙을 차용하는 것도 좋은 전략인 것 같습니다.
다만 모델에 대해서는 완전히 가져올 수 없을 것 같아요.
왠만하면 한국어로 사전학습된 모델을 사용하고 싶고, 조금 더 정밀한 챗봇을 위해 end-to-end로는 한계가 있을 것 같네요.
Introduction
Open-domain chatbot은 어느 주제와도 대화를 할 수 있는 작업입니다.
몇몇의 open-domain chatbot은 사람과 같은 속성을 보이지만, knowledge-based, retrieval-based, rule-based 을 이용한 dialog manage와 같은 복잡한 구조를 가지고 있어요.
현재 많은 연구에도 open-domain chatbot은 아직 일반적으로 사용되지 못하고 있습니다.우리는
Meena라는 소셜 미디어에서 약 40억개의 필터링된 단어로 학습한 end-to-end 생성형 chatbot 모델을 만들었어요.
Meena를 통해 큰 규모의 작은 perplexity 모델이 좋은 대화를 이끌어 내는 것을 볼 수 있었습니다.
우리는 seq2seq 모델을 이용했고, multi-trun conversation(최대 7번)을 이용하여 학습을 진행하였어요.
2.6B 파라미터를 가진 모델이 perplexity 10.2로 가장 좋은 성능을 달성하였습니다.Meena와 다른 chabot들의 정확한 측정을 위해, SSA(Sensibleness and Specificity Average)를 활용하였어요.
SSA는 먼저 봇의 대답이 충분히 문맥에 맞게 이해되는지를 나타내는 sensibleness로 구성되어 있습니다.
그러나 sensibleness를 위해 그 응답이 모호하고 당연한 대답만을 내는 안전한 전략을 사용하도록 학습될 수 있는 것이죠.
그래서 우리는 해당 문맥에서 구체적은 답을 주는지를 나타내는 specificity를 함께 구성하였습니다.
이는 generic과 lively한 답변을 성공적으로 구별해낼 수 있었어요.우리는
Meena, 사람, 그리고 여러 open-domain chabot들을 SSA를 이용하여 비교하였어요.
Multi-turn conversation 데이터를 이용한 static한 방법과, 사람이 무엇이든 물어보는 interactive한 두 가지 방법으로 말이죠.
여기서 우리는 static과 interactive 두 방법에서 모두 SSA와 Meena의 perplexity가 강하게 관계가 있다는 것을 알아냈습니다.
즉, 학습 데이터에 더 잘 맞도록 학습하면 더 sensible 하고 specific한 답을 생성한다는 의미죠.
SSA는 사 람의 경우 약 86%, Meena는 최대 79% 까지 달성할 수 있었습니다.
다른 open-domain chatbot에 비하면 큰 차이가 나는 점수죠.그러나 우리는 몇 가지 약점도 이야기할 것입니다.
예를 들어 static evaluation dataset은 대화의 모든 부분을 포착하기에는 제한적이에요.
그럼에도
Meena가 높은 SSA를 달성하고, 이는 perplexity와 상관관계가 있다는 것은 더 좋은 perplexity를 달성한다면 더 사람과 같은 chatbot이 가능하다는 소리입니다.이 논문에서 제공하는 내용은 다음과 같아요.
- proposing a simple human evaluation metric for multi-turn opendomain chatbots that captures basic, but important, attributes of human conversation
- showing evidence that perplexity is an automatic metric that correlates with human judgment
- demonstrating that an end-to-end neural model with sufficiently low perplexity can surpass the sensibleness and specificity of existing chatbots that rely on complex
End-to-end 모델인Meena와 sensibleness와 specificity를 모두 고려하는 새로운 metricSSA을 소개.
소셜 미디어에서 multi-turn conversation을 통해 학습했다 하였는데 어떤 방식으로 했는지 잘 알아두면 chatbot을 만드는데 도움이 될 것 같다.